package com.zoro.dyformservice.support.filter.auth;

import com.zoro.dyformservice.support.ex.LoginExpiredException;
import org.springframework.stereotype.Service;

/**
 * @author zhaoxingwu
 */
@Service
public class SessionLoginInfoService {

    public void saveLoginInfoToSession(LoginUser loginUser) {
        // TODO 这个方法很危险，不应该public
        //  想一个办法，只能让 /login 接口调用
        //  可以在登陆接口成功后，将数据对象放到request 中， LoginFilter 保存在 Context 里， 这样应该可以了
        LoginInfoContext.setLoginUserToSession(loginUser);
    }

    public LoginUser getCurrentUser() {
        return LoginInfoContext.getLoginUser();
    }

    public LoginUser getCurrentUserNonnull() throws LoginExpiredException {
        LoginUser user = this.getCurrentUser();
        if (user == null) {
            throw new LoginExpiredException();
        }
        return user;
    }
}
